"""



"""
from flask import render_template, current_app, jsonify, abort, session

from info.models import News, User
from info.utils.response_code import RET
from . import news_blue

# 新闻详情展示(用户)
# 请求路径: /news/<int:news_id>
# 请求方式: GET
# 请求参数:news_id
# 返回值: detail.html页面, 用户data字典数据
@news_blue.route('/<int:news_id>')
def news_detail(news_id):

    #0,获取session用户编号
    user_id = session.get("user_id")

    #0.1,根据用户编号获取对象
    user = None
    if user_id:
        user = User.query.get(user_id)


    #1, 根据新闻编号获取新闻对象
    try:
        news = News.query.get(news_id)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR,errmsg="获取新闻失败")

    #2, 判断是否存在
    if not news:
        abort(404)


    #2,1 判断当前新闻是否在用户的收藏列表中
    is_collected = False #假设未收藏

    # 当前用户登陆了, 并且当前新闻在用户的收藏列表中:
    if  user and news in user.collection_news:
        is_collected = True


    #3, 将新闻对象,转成字典数据
    data = {
        "news_info":news.to_dict(),
        "user_info":user.to_dict() if user else "",
        "is_collected":is_collected
    }

    #4,携带数据,渲染页
    return render_template('news/detail.html',data=data)